package com.zxl.designpattern.structure.proxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

/**
 * @author zxl
 * @version 1.0
 * @description 代理工厂-JDK动态代理
 *
 * @date 2025/6/1 14:32
 */
public class ProxyFactory {

    /**
     * 获取代理对象
     * @param target 目标对象
     * @return
     */
    public static <T> T getProxy(T target){
        return (T) Proxy.newProxyInstance(
                target.getClass().getClassLoader(),
                target.getClass().getInterfaces(),
                new CarPurchaseHandler(target));
    }
}
